home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
data
/
dora
/
doraview.plp
< prev
next >
Wrap
Text File
|
1993-11-30
|
31KB
|
1,164 lines
/************************************************************************
* 共通処理ルーチン *
*************************************************************************/
/* ディクトリ一覧表示からの指定ファイル名取り出し */
%PickFile{
LineNo:= @xlinenum;
MemoLine:=@nolmemo(memono)-1;
line1:= @case (LineNo>MemoLine,
{Yes},
{im(@memo(memono,MemoLine,1))},
{No},
{
case (LineNo<=0,
{Yes}, {im(@memo(memono,1,1))},
{No}, {im(@memo(memono,LineNo,1))}
);
});
case (@getchar(line1,10,3)<>{ },
{Yes},
{file1:=@subdir(logdir,@head(@getchar(line1,1,8),{ })|{.}|
@head(@getchar(line1,10,3),{ }))},
{No},
{file1:=@subdir(logdir,@head(@getchar(line1,1,8),{ }))}
);
};
/* ログ参照メイン処理 */
%ViewLOG{
[logdir,memono]
fn:=@tail(logdir,{\});
InactMemo;
loop ({
dispoff(!DEBUG);
command({dir }|logdir|{>}|TEMP2|{_mopdir.tmp});
dispoff({No});
%lineno @noline(@read(TEMP2|{_mopdir.tmp}));
case ((@nochar(logdir)!=3&&lineno>9)||
(@nochar(logdir)==3&&lineno>7),
{Yes},
{
case (Btitle={Yes},
{Yes},
{
case (@filechk(LOG2|{board\title.txt}),
{Yes},{Viewlog2},
{No},
{footnote({title.txtが見つかりません});
wait(2);Viewlog1})
},
{No},{Viewlog1})
},
{No},{display(logdir|{ は空です\n});im({No})}
);
});
/* ログ参照に使用したメモの削除処理 */
loop ({case (@mlast>=memono,
{Yes},
{
case (@mcheck==0,{Yes},{mopen(@mlast)});
case (@mcheck>=memono,{Yes},{mclose(3)},
{No},{mclose(1)}
);
im({Yes});
},
{No},{im({No})}
);
});
setcdir(CDIR)
};
/* 1ログファイルの表示処理 */
%Select1{
PickFile;
case(@body(line1,{<},{>})={DIR},
{Yes},
{
ViewLOG(@subdir(logdir,@head(@getchar(line1,1,8),{ })),
memono)
},
{No},
{
case (@getchar(line1,10,3),
{LZH},{ViewLZH(@subdir(logdir,@head(@getchar
(line1,1,8),{ })),memono)},
{NAP},{ViewNAP(@subdir(logdir,@head(@getchar
(line1,1,8),{ })|{.NAP}),memono)},
{NPB},{ViewNAP(@subdir(logdir,@head(@getchar
(line1,1,8),{ })|{.NPB}),memono)},
,
{
case (@getchar(line1,10,3)<>{ },
{Yes},
{LOGFILE:=@subdir(logdir,
@head(@getchar(line1,1,8),{ })|{.}|
@head(@getchar(line1,10,3),{ }))},
{No},
{LOGFILE:=@subdir(logdir,
@head(@getchar(line1,1,8),{ }))}
);
%m1 memono;
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
mread(LOGFILE,m1);
mopen(m1,0,21,639,459,{w});
loop ({
footnote({復帰終了削除更新コメント解石}|
{ESC },{b});waitx();
case (@xtype,
101,{InactMemo;
FLG:={Return};im({No})},
201,{InactMemo;
FLG:={Return};im({No})},
102,{InactMemo;im({No})},
202,{InactMemo;im({No})},
103,delLOG, 203,delLOG,
204,updLOG, 204,updLOG,
105,{COMMENT(m1)},
205,{COMMENT(m1)},
106,ISH, 206,ISH,
107,{ESC},
207,{ESC},
m1,{COMMENT(m1)},
,{im({Yes})}
);
});
});
});
case(FLG,{Return},{im({No})},,{im({Yes})});
};
/* ログファイル名の変更処理 */
%Rename1{
PickFile;
footnote({ファイル名を変更しています});
case(@body(line1,{<},{>})={DIR},
{Yes},
{
footnote({ディレクトリ名は変更できません});
wait(1);
},
{No},
{
var file [64];
case (@getchar(line1,10,3)<>{ },
{Yes},
{file:=@subdir(logdir,
@head(@getchar(line1,1,8),{ })|
{.}|@head(@getchar(line1,10,3),{ }))},
{No},{file:=@subdir(logdir,
@head(@getchar(line1,1,8),{ }))}
);
SNDMSG({nyuryo_f.snd});
footnote({新しいファイル名を入力して下さい});
%file2 @input({新しいファイル名を入力して下さい},,
@tail(file,{\}));
case (file2={}||file2=@tail(file,{\})||@filechk(file2),
{No},
{
footnote({ファイル名を変更しています});
dispoff(!DEBUG);
command({rename }|file|{ }|file2);
command({dir }|logdir|{>}|TEMP2|{_mopdir.tmp});
dispoff({No});
InactMemo;
case(@mlast>=memono,{Yes},{mclear(memono)});
madd(memono,@read(TEMP2|{_mopdir.tmp},7,lineno-9));
mopen(memono,0,21,639,459,{r});
});
});
im({Yes});
};
/* ログファイルの複写処理 */
%Copy1 {
PickFile;
footnote({ファイルを複写します});
case (@body(line1,{<},{>})={DIR},
{Yes},
{
footnote({ディレクトリは複写できません});
wait(1);
},
{No},
{
case (@getchar(line1,10,3)<>{ },
{Yes},{LOGFILE:=@subdir(logdir,
@head(@getchar(line1,1,8),{ })|
{.}|@head(@getchar(line1,10,3),{ }))},
{No},{LOGFILE:=@subdir(logdir,
@head(@getchar(line1,1,8),{ }))}
);
SNDMSG({erande_f.snd});
footnote({複写先のファイルを指定して下さい 複写元=}|LOGFILE);
%file2 @filesel;
case (file2={},
{No},
{
footnote({ファイルを複写します});
copyfile(LOGFILE,file2);
});
});
im({Yes});
};
/* 表示中のファイル内のESC制御記号をカットする */
%ESC {
%cdir @getcdir;
footnote({現在表示しているメモNo.}|memono|
{のESC制御記号をカット中です});
InactMemo;setcdir(CDIR);delfile(TEMP2|{TEMP.$A$});
dispoff(!DEBUG);
delfile(TEMP2|{_escctr.log});mwrite(TEMP2|{_escctr.log},memono);
command({escctr -d}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{_escctr.log});
dispoff({No});
case (@filechk(TEMP2|{_escctr.log}),
{Yes},{mclear(memono);mread(TEMP2|{_escctr.log},memono);
mopen(memono,0,21,639,459,{w})},
{No} ,{display({ESCカット機能には ESCCTR.EXE がパスの通った}|
{ディレクトリに必要です\n});
wait(2);mopen(memono,0,21,639,459,{w});mclose(1)});
setcdir(cdir)};
%ESC2 {%cdir @getcdir;
case (memono+2=@mlast,
{Yes},{
footnote({メモ}|memono+2|{のESC制御記号をカット中です});
InactMemo;setcdir(CDIR);
dispoff(!DEBUG);
delfile(TEMP2|{TEMP.$A$});
delfile(TEMP2|{_escctr.log});
mwrite(TEMP2|{_escctr.log},memono+2);
command({escctr -d}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{_escctr.log});
dispoff({No});
case (@filechk(TEMP2|{_escctr.log}),
{Yes},
{
mclear(memono+2);
mread(TEMP2|{_escctr.log},memono+2);
mopen(memono+2,0,161,639,379);
%memomax @mlast;
var memono1 [2];
memono1:=memono+2;
loop ({
case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
memono1:=memono1+1;
im(memono1<=memomax);
});
mclose(1);
mopen(memono+1,0,241,639,459,{w});
},
{No} ,{display({ESCカット機能には ESCCTR.EXE がパスの通った}|
{ディレクトリに必要です\n});
wait(2);mopen(memono,0,21,639,459,{w});mclose(1)});
},
{No},{footnote({参照用のファイルをオープンしてからで無いと、}|
{この機能は使えません});wait(3);
});
setcdir(cdir)
};
/* *.LZHファイルの解凍処理 */
%Extract1{
PickFile;
footnote({圧縮形式ファイルの解凍を行います});
case (@getchar(line1,10,3)={LZH},
{No},
{
footnote({圧縮ファイルでないので解凍できません});
wait(1);
},
{Yes},
{
var file [64];
file:=@subdir(logdir,@head(@getchar(line1,1,8),{ }));
%cdir @getcdir;
SNDMSG({erande.snd});
footnote({解凍先のディレクトリに移動して右クリックして下さい});
filesel;
footnote({圧縮ファイルを解凍しています});
InactMemo;
command({lha x }|file);
setcdir(cdir);
dispoff(!DEBUG);
command({dir }|logdir|{>}|TEMP2|{_mopdir.tmp});
dispoff({No});
case(@mlast>=memono,{Yes},{mclear(memono)});
madd(memono,@read(TEMP2|{_mopdir.tmp},7,lineno-9));
mopen(memono,0,21,639,459,{r});
});
im({Yes});
};
/* ディレクトリ表示と選択処理 */
%Viewlog1{
InactMemo;
case(@mlast>=memono,{Yes},{mclear(memono)});
case (@nochar(logdir)==3,
{Yes}, {madd(memono,@read(TEMP2|{_mopdir.tmp},5,lineno-7))},
{No}, {madd(memono,@read(TEMP2|{_mopdir.tmp},7,lineno-9))}
);
mopen(memono,0,21,639,459,{r});SNDMSG({erande_f.snd});
footnote({復帰終了選択改名複写解凍},{b});waitx(60);
case (@xtype,memono,Select1,
101,{FLG:={Return};im({No})},
201,{FLG:={Return};im({No})},
102,{im({No})}, 202,{im({No})},
103,Select1, 203,Select1,
104,Rename1, 204,Rename1,
105,Copy1, 205,Copy1,
106,Extract1, 206,Extract1,
,{im({Yes})}
);
};
/* タイトルモードでのディレクトリ表示と選択処理 */
%Viewlog2{
LOGFILE:=@subdir(logdir,{TITLE.TXT});
InactMemo;case(@mlast>=memono,{Yes},{mclear(memono)});
madd(memono,@read(@subdir(logdir,{TITLE.TXT})));
mopen(memono,0,21,639,459,{r});SNDMSG({erande_f.snd});
footnote({復帰終了選択ESC },{b});
waitx(60);
case (@xtype,memono,Select2,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
103,Select2, 203,Select2,
104,{ESC;updLOG;im({Yes})},
204,{ESC;updLOG;im({Yes})},
,{im({Yes})}
)
};
/* 圧縮ファイルの表示処理 */
%ViewLZH{
[lzhfile,memono]
fn:=@tail(lzhfile,{\},{.});
loop ({
dispoff(!DEBUG);
command({LHA }|lzhfile|{>}|TEMP2|{_lzhdir.tmp});
dispoff({No});
%lineno @noline(@read(TEMP2|{_lzhdir.tmp}));
InactMemo;
case (lineno>8,{Yes},viewlzh1,
{No},{display(lzhfile|{ はありません\n});im({No})});
});
InactMemo;
};
/* 圧縮1ログファイルの表示処理 */
%select1{
PickFile;
%lzhfile1 @getchar(line1,3,12);
setcdir(TEMP);
dispoff(!DEBUG);
command({del }|lzhfile1);
command({LHA E }|lzhfile|{ }|lzhfile1);
dispoff({No});
case(@body(lzhfile1,{.}),
{NAP},{ViewNAP(TEMP2|lzhfile1,memono)},
{NPB},{ViewNAP(TEMP2|lzhfile1,memono)},
,
{
%m1 memono;
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
LOGFILE:=TEMP2|lzhfile1;
mread(lzhfile1,m1);
mopen(m1,0,21,639,459,{w});
loop ({
footnote({復帰終了削除更新コメント解石ESC },{b});
waitx();
case (@xtype,
101,{InactMemo;FLG:={Return};im({No})},
201,{InactMemo;FLG:={Return};im({No})},
102,{InactMemo;im({No})},
202,{InactMemo;im({No})},
103,delLZH, 203,delLZH,
104,updLZH, 204,updLZH,
105,{COMMENT(m1)}, 205,{COMMENT(m1)},
106,ISH, 206,ISH,
107,{ESC}, 207,{ESC},
m1,{COMMENT(m1)},,{im({Yes})});
});
footnote({});
setcdir(TEMP);
dispoff(!DEBUG);
delfile(lzhfile1);
dispoff({No});
case(FLG,{Return},{im({No})},,{im({Yes})});
});
};
/* 圧縮ログファイル名の変更処理 */
%rename1{
PickFile;
footnote({ファイル名を変更します});
var file [64];
file:=@head(@getchar(line1,3,12),{ });
SNDMSG({nyuryo_f.snd});footnote({新しいファイル名を入力して下さい});
%file2 @input({新しいファイル名を入力して下さい},,@tail(file,{\}));
footnote({ファイル名を変更します});
case (file2<>{}&&file2<>file,{Yes},
{
setcdir(TEMP);
dispoff(!DEBUG);
command({LHA E }|lzhfile|{ }|file);
command({rename }|file|{ }|file2);
command({LHA A }|lzhfile|{ }|file2);
command({LHA D }|lzhfile|{ }|file);
delfile(file2);
command({LHA }|lzhfile|{>}|TEMP2|{_lzhdir.tmp});
dispoff({No});
});
InactMemo;
case(@mlast>=memono,{Yes},{mclear(memono)});
madd(memono,@read(TEMP2|{_lzhdir.tmp},6,lineno-8));
mopen(memono,0,21,639,459,{r});im({Yes});
};
/* 圧縮ログファイルの解凍処理 */
%copy1 {
PickFile;
footnote({ファイルを解凍します});
var file [64];
file:=@head(@getchar(line1,3,12),{ });SNDMSG({erande_f.snd});
footnote({解凍先のファイルを指定して下さい});
%file2 @filesel;footnote({ファイルを解凍します});
case(file2<>{},{Yes},
{
dispoff(!DEBUG);command({LHA E }|lzhfile|{ }|file);
case(file<>file2 && file2<>{*.*} && file2<>{},
{Yes},{command({ren }|file|{ }|file2)});
dispoff({No});
});
im({Yes});
};
/* 圧縮ファイル内容の表示と選択処理 */
%viewlzh1{
case(@mlast>=memono,{Yes},{mclear(memono)});
madd(memono,@read(TEMP2|{_lzhdir.tmp},6,lineno-8));
mopen(memono,0,21,639,459,{r});
SNDMSG({erande_f.snd});
footnote({復帰終了選択改名解凍},{b});
waitx(60);
case (@xtype,
101,{FLG:={Return};im({No})},
201,{FLG:={Return};im({No})},
102,{im({No})}, 202,{im({No})},
103,select1, 203,select1,
104,rename1, 204,rename1,
105,copy1, 205,copy1,
memono,select1,
,{im({Yes})});
};
/* 1ログファイルの表示処理(ボードの場合) */
%Select2{
var DAY1[24];var DAY2[2];var DAY3[2];var DAY4[2];
DAY1:=@daylong;DAY2:=@im(@getchar(DAY1,6,2));
case (DAY2,
{01},{DAY3:={12};DAY4:={11}},{02},{DAY3:={01};DAY4:={12}},
{03},{DAY3:={02};DAY4:={01}},{04},{DAY3:={03};DAY4:={02}},
{05},{DAY3:={04};DAY4:={03}},{06},{DAY3:={05};DAY4:={04}},
{07},{DAY3:={06};DAY4:={05}},{08},{DAY3:={07};DAY4:={06}},
{09},{DAY3:={08};DAY4:={07}},{10},{DAY3:={09};DAY4:={08}},
{11},{DAY3:={10};DAY4:={09}},{12},{DAY3:={11};DAY4:={10}}
);
PickFile;
%BDlogS{
%m1 memono;
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
mread(LOGFILE,m1);
mopen(m1,0,21,639,459,{w});
loop ({
footnote({復帰終了削除更新コメント解石},{b});
waitx();
case(@xtype,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{im({No})}, 202,{im({No})},
103,delLOG, 203,delLOG,
104,updLOG, 204,updLOG,
105,{COMMENT(m1)},
205,{COMMENT(m1)},
106,ISH, 206,ISH,
m1,{COMMENT(m1)},
,{im({Yes})}
);
});
};
LOGFILE:=@im(RTTL2|NET|{_}|DAY2|{.}|@head(@body(line1,{#}),{ }));
case (@filechk(LOGFILE),
{Yes},
{BDlogS},
{No},
{footnote(LOGFILE|{がありません});wait(2);
LOGFILE:=@im(RTTL2|NET|{_}|DAY3|{.}|@head(@body(line1,{#}),{ }));
case (@filechk(LOGFILE),
{Yes},
{BDlogS},
{No},
{footnote(LOGFILE|{がありません});wait(2);
LOGFILE:=@im(RTTL2|NET|{_}|DAY4|{.}|@head(@body(line1,{#}),{ }));
case (@filechk(LOGFILE),
{Yes},
{BDlogS},
{No},{footnote(LOGFILE|{がありません});wait(2);
footnote({RTTLC出力用ディレクトリの}|
{設定が正しいかをチェックして下さい})
});
});
});
case(FLG,{Return},{im({No})},,{im({Yes})});
};
/* 非圧縮ログファイルの削除処理 */
%delLOG {
footnote({ログファイルを削除します});
SNDMSG({kaknin_f.snd});
select ({現在表示しているログファイルを削除します},
Wtime4,{im({Yes})},
{ 削除する },
{
InactMemo;
dispoff(!DEBUG);
delfile(LOGFILE);
dispoff({No});
im({No})},
{ 削除しない },{im({Yes})}
);
};
/* 非圧縮ログファイルの更新処理 */
%updLOG {
footnote({ログファイルを更新します});
SNDMSG({kaknin_f.snd});
select ({現在表示しているログファイルを更新します},
Wtime4,{im({Yes})},
{ 更新する },
{
InactMemo;
dispoff(!DEBUG);
delfile(LOGFILE);
mwrite(LOGFILE,memono);
command({dir }|logdir|{>}|TEMP2|{_mopdir.tmp});
dispoff({No});
im({No})},
{ 更新しない },{im({Yes})}
);
};
/* 圧縮モードのログファイルを削除する */
%delLZH {
footnote({ログファイルを削除します});
SNDMSG({kaknin_f.snd});
select({現在表示しているログファイルを削除します},
Wtime4,{im({Yes})},
{ 削除する },
{
InactMemo;
dispoff(!DEBUG);
command({LHA D }|lzhfile|{ }|lzhfile1);
dispoff({No});
im({No})},
{ 削除しない },{im({Yes})}
);
};
/* 圧縮モードのログファイルを更新する */
%updLZH {
footnote({ログファイルを更新します});SNDMSG({kaknin_f.snd});
select({現在表示しているログファイルを更新します},
Wtime4,{im({Yes})},
{ 更新する },
{
InactMemo;
dispoff(!DEBUG);
delfile(lzhfile1);
mwrite(lzhfile1,memono);
command({LHA U }|lzhfile|{ }|lzhfile1);
command({LHA }|lzhfile|{>}|TEMP2|{_lzhdir.tmp});
dispoff({No});
im({No})
},
{ 更新しない },{im({Yes})}
);
};
/*ISHデータを解石する */
%ISH {%cdir @getcdir;
footnote({解石ファイルを保存するディレクトリへ移動して右クリックしてください});
filesel;footnote({ISHデータ解石中});command({ISH }|LOGFILE);
setcdir(cdir)};
/* コメント作成処理の振り分け */
%COMMENT{[memono]
%LineNo @xlinenum; /*カーソル位置の行数を返す*/
%MemoLine @nolmemo(memono)-1; /*メモの総行数を返す*/
footnote({少々おまちください});
%cdir @getcdir;
setcdir(CDIR);
delfile(TEMP2|{_moptxf.tmp});
setcdir(cdir);
case (LineNo>=MemoLine,
{No},{case (LineNo<=0,
{No},{l1:=@getchar(@memo(memono,LineNo,1),1,80)})
});
case (LineNo>MemoLine,{No},{case(LineNo<=1,
{No},{l2:=@getchar(@memo(memono,LineNo-1,1),1,80)})});
case (LineNo>MemoLine,{No},{case(LineNo<=1,
{No},{l3:=@getchar(@memo(memono,LineNo-3,1),1,80)})});
case (LineNo>MemoLine,{No},{case(LineNo<=1,
{No},{l4:=@getchar(@memo(memono,LineNo+2,1),1,80)})});
l5:=@getchar(@memo(memono,1,6),1,80);
case (@getchar(l1,11,12)={Private mail}||
@getchar(l1,11,13)={個人宛 お手紙},
{Yes},{footnote({カーソルを宛先IDに置いて下さい});wait(2)},
{No}, {
case (@getchar(l2,11,12)={Private mail}||
@getchar(l2,12,14)={メールボックス}||
@getchar(l2,11,13)={個人宛 お手紙},
{Yes}, {resMAIL(memono)},
{No}, {
case (@getchar(l1,1,2)={伝}&&@getchar(l1,5,2)={板}||
@getchar(l1,1,2)={で}&&@getchar(l1,5,2)={ご}||
@getchar(l1,3,2)={発}&&@getchar(l1,6,2)={言}||
@getchar(l1,1,1)={G}&&@getchar(l1,6,1)={r}||
@getchar(l1,1,1)={G}&&@getchar(l1,6,1)={R}||
@getchar(l1,2,1)={G}&&@getchar(l1,9,1)={:}||
@getchar(l1,1,1)={G}&&@getchar(l1,8,1)={w},
{Yes}, {Gather},
{No}, {
case (@getchar(l1,9,4)={最後}&&@getchar(l1,15,4)={一言},
{Yes}, {LastWard},
{No}, {
case (@getchar(l1,6,1)={B}&&@getchar(l1,25,1)={K},
{Yes},
{
case (@getchar(l5,1,8)={ファイル},
{Yes},
{
case (@getchar(@head(l5,{パスワード},{・・・・・}),1,4)
={は設},
{Yes},
{downDLIB(@getchar(@head(l5,{#},{・・・・・}),1,3)
,NET,@getchar(l1,8,12))},
{No},
{downDLIB(@getchar(@head(l5,{#},{・・・・・}),1,3)
,@head(l5,{パスワード},{・・・・・}),
@getchar(l1,8,12))}
)
},
{No},{downDLIB(@getchar(@head(l5,{#},{・・・・・}),1,3)
,NET,@getchar(l1,8,12))})
},
{No}, {
case (@getchar(l1,1,2)={ボ}&&@getchar(l1,7,2)={名}||
@getchar(l1,1,2)={ぼ}&&@getchar(l1,7,2)={名}||
@getchar(l1,1,1)={S}&&@getchar(l1,6,1)={o},
{Yes}, {sayMES(memono,@tail(l1,{#},{)}))},
{No}, {
case (@getchar(l1,1,1)={#}&&@getchar(l1,5,1)={ }||
@getchar(l1,2,1)={#}&&@getchar(l1,6,1)={ },
{Yes}, {sayMES(memono,@getchar(l1,2,3))},
{No}, {
case (@getchar(l1,1,2)={発}&&@getchar(l1,5,2)={者}||
@getchar(l1,1,2)={発}&&@getchar(l1,7,2)={者}||
@getchar(l1,1,2)={書}&&@getchar(l1,7,2)={人}||
@getchar(l1,1,1)={S}&&@getchar(l1,6,1)={r},
{Yes}, {resMES},
{No}, {footnote({カーソルをボード名 又は 発言者行に置いて}|
{下さい。});
wait(2)}
)} )} )} )} )} )} )});
im({Yes})};
/* コメント作成処理 */
%MAKEcom{
footnote({コメントを作成します});
OpenMemo;
loop ({
footnote({終了取消参照清書参ES},{b});
waitx();
case (@xtype,
101,{savememo}, 201,{savememo},
102,{cancel}, 202,{cancel},
103,{newmemo}, 203,{newmemo},
104,{rewrite}, 204,{rewrite},
105,ESC2, 205,ESC2,
,{im({Yes})}
);
});
};
/* アップ用文書作成用メモをオープンする */
%OpenMemo{
InactMemo;
mopen(memono,0,21,639,240,{w});
mclose(1);
madd(memono+1,{});
mclear(memono+1);
mopen(memono+1,0,241,639,459,{w});
};
/* アップ文書作成をキャンセルする */
%cancel {
SNDMSG({kaknin_f.snd});footnote({作成中の文書を取消しますか?});
select({作成中の文書を取消しますか?},
Wtime4,{footnote({});im({Yes})},
{ は い },
{
InactMemo;
dispoff(!DEBUG);
delfile(TEMP2|{_mopmemo.bak});
dispoff({No});
mwrite(TEMP2|{_mopmemo.bak},memono+1);
mopen(memono,0,21,639,459,{w});
footnote({});
im({No})},
{ いいえ },{footnote({});im({Yes})}
);
};
/* アップ用文書を清書する */
%rewrite{
footnote({メモ}|memono+1|{を清書しています});
InactMemo;
%cdir @getcdir;
setcdir(CDIR);
dispoff(!DEBUG);
delfile(TEMP2|{_moptext.tmp});
delfile(TEMP2|{_moptext.new});
mwrite(TEMP2|{_moptext.tmp},memono+1);
command({txf -f -i }|TEMP2|{_moptext.tmp -o }|TEMP2|{_moptext.new });
dispoff({No});
case (@filechk(TEMP2|{_moptext.new}),
{Yes},
{
mclear(memono+1);
mread(TEMP2|{_moptext.new},memono+1);
mopen(memono,0,21,639,240,{w});
%memomax @mlast;
var memono1 [2];
memono1:=memono+2;
loop ({
case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
memono1:=memono1+1;
im(memono1<=memomax);
});
mclose(1);
mopen(memono+1,0,241,639,459,{w});
},
{No},
{
display({清書機能には TXF.EXE がパスの通った}|
{ディレクトリに必要です\n});
wait(2);
mopen(memono,0,21,639,240,{w});
%memomax @mlast;
var memono1 [1];
memono1:=memono+2;
loop ({
case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
memono1:=memono1+1;
im(memono1<=memomax);
});
mclose(1);
mopen(memono+1,0,181,639,459,{w});
});
setcdir(cdir);
im({Yes});
};
/* 他のファイルを参照するためにメモを開く */
%newmemo{
case (@mlast==9,
{Yes},
{
footnote({メモ番号が一杯のため、新しいメモが開けません});
wait(2);
},
{No},
{
case(@mcheck!=0,{Yes},{mclose(1)});
%memono @mlast+1;
madd(memono,{\n});
mclear(memono);
%file1 @filesel;
case (file1<>{}&&@filechk(file1),
{Yes},{mread(file1,memono)}
);
mopen(memono,0,161,639,379);
});
im({Yes});
};
/* 伝言板(時差チャット)へのコメント作成処理 */
%Gather{
%savememo{
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|{\DENGO},memono+1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
InactMemo;mopen(memono,0,21,639,459,{w});im({No})
};
footnote({伝言板へのコメントを作成します});
MAKEcom;
};
/* 『最後の一言』へのコメント作成処理 */
%LastWard{
%LASTset{
case(@filechk(UP2|{\SAIGO}),
{Yes},{delfile(UP2|{\SAIGO});write(UP2|{\SAIGO},sai)},
{No},{write(UP2|{\SAIGO},sai)})};
footnote({注意;この機能はKMF版 RTBBS-NETのみ有効です});
%a @plane( {c最後の一言へのコメントをして下さい\n}|
{tコメント/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
);
%sai @head(@getline(a,1,1),{\n});%ok @head(@getline(a,2,1),{\n});
case (ok==1,{Yes},
{footnote({最後の一言へのコメントを作成します});
LASTset})
};
/* ボードへのコメント作成処理 */
%resMES {
%c1 @case(@nochar(l4)-11<=0,{Yes},{im(1)},{No},{im(@nochar(l4)-11)});
%savememo{
%cdir @getcdir;setcdir(CDIR);
%mes @tail(l2,{#},{)});
%reply @body(l3,{:},{/});
%title @tail(@getchar(l4,11,c1),{]:});
%resp @head(@head(l1,{: },{ [}),{ });
SNDMSG({nyuryo_f.snd});
%a @plane(
{cボードへのコメント\n}|
{tネット名 /xxxxxxxx\n}|
{cSIGボードの場合はネット名の代わりに\n}|
{cパスワードを入力して下さい\n}|
{tボード番号 /xxxx\n}|
{tコメント元番号/xxxx\n}|
{tタイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / メール / 取消 \n}|
{c\n}|
{cメールを送付処理”タイトルの入力を忘れずに”\n}|
{tメール宛先 /xxxxxxxxx\n},
@SCANPW(mes),mes,reply,title,resp);
%forum @head(@getline(a,1,1),{\n});
%mes @head(@getline(a,2,1),{\n});
%reply @head(@getline(a,3,1),{\n});
%title @head(@getline(a,4,1),{\n});
%ok @head(@getline(a,5,1),{\n});
%resp @head(@getline(a,6,1),{\n});
case (ok,
{ 1},
{
footnote({ボードへのコメントを作成します});
%file1 @crefile(UP,{res});
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|file1,memono+1);
mopen(memono+1,0,241,639,459,{w});
%res1 {forum=}|forum|{;}|{mes=}|mes|{;}|{reply=}|reply|{;}| {file=}|UP2|file1|{;}|{title=}|title|CRLF;
write(UP2|{_mopres.ctl},res1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);
InactMemo;
mopen(memono,0,21,639,459,{w});
im({No});
},
{ 2},
{
footnote({発言者へのメールを作成します});
%file1 @crefile(UP,{res});
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|file1,memono+1);
mopen(memono+1,0,241,639,459,{w});
%res1 {mail=}|resp|{;}|{date=;}|
{file=}|UP2|file1|{;}|{title=}|title|CRLF;
write(UP2|{_mopres.ctl},res1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);
InactMemo;
mopen(memono,0,21,639,459,{w});
im({No});
},
{ 3},{im({Yes})},
,{im({Yes})})};
MAKEcom;
};
/* ボードへの新規発言作成処理 */
%sayMES {[memono,mesno]
%savememo{
SNDMSG({nyuryo_f.snd});
%a @plane( {cボードへの新規発言\n}|
{tネット名 /xxxxxxxx\n}|
{cSIGボードの場合はネット名の代わりに\n}|
{cパスワードを入力して下さい\n}|
{tボード番号 /xxxxx\n}|
{tタイトル /xxxxxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
@SCANPW(mesno),mesno,
);
%forum @head(@getline(a,1,1),{\n}); %mes @head(@getline(a,2,1),{\n});
%title @head(@getline(a,3,1),{\n}); %ok @head(@getline(a,4,1),{\n});
case (ok==1,{Yes},{footnote({ボードへの新規発言を作成します});
%file1 @crefile(UP,{res});
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|file1,memono+1);
mopen(memono+1,0,241,639,459,{w});
%res1 {forum=}|forum|{;}|{mes=}|mes|{;}|{reply=;}|
{file=}|UP2|file1|{;}|{title=}|title|CRLF;
write(UP2|{_mopres.ctl},res1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);
InactMemo;
mopen(memono,0,21,639,459,{w});
im({No})},
{No},{im({Yes})})};
MAKEcom;
};
/* メールへの返信作成処理 */
%resMAIL{[memono]
%savememo{
%c1 @case (@nochar(l4)-10<=0,
{Yes},{im(1)},{No},{im(@nochar(l4)-10)});
SNDMSG({nyuryo_f.snd});
%a @plane( {cメールの返信\n}|
{t 送信先ID /xxxxxxxxx\n}|
{t タイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
@head(@head(l1,{: },{ [}),{ }),
{re*}|@head(@getchar(l4,11,c1),{\n})
);
%mail @head(@getline(a,1,1),{\n});
%title @head(@getline(a,2,1),{\n});
%ok @head(@getline(a,3,1),{\n});
case (ok,
{ 1},
{footnote({メールの返信を作成します});
%file1 @crefile(UP,{res});
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|file1,memono+1);
mopen(memono+1,0,241,639,459,{w});
%res1 {mail=}|mail|{;}|{file=}|UP2|file1|{;}|
{title=}|title|CRLF;
write(UP2|{_mopres.ctl},res1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);InactMemo;mopen(memono,0,21,639,459,{w});
im({No})
},
{ 2},{im({Yes})}
,{im({Yes})}
)};
MAKEcom;
};
/* DLIBからのダウンロード制御文作成処理 */
%downDLIB{[LibNo,PASS,name]
display(PASS);
var DataFile[64];
var DocFile[64];
var forum[8]; var libno[4]; var dataname[12];
var datafile[64];var docfile[64];
case (@nochar(FSW),
0,
{
DataFile:=LOG2|{FREESOFT\}|name;
DocFile :=LOG2|{FREESOFT\}|@body(name,,{.})|{.ggg};
},
3,
{
DataFile:=FSW|name;
DocFile :=FSW|@body(name,,{.})|{.ggg};
},
,
{
DataFile:=FSW|{\}|name;
DocFile :=FSW|{\}|@body(name,,{.})|{.ggg};
});
loop ({SNDMSG({nyuryo_f.snd});
%a @plane( {cデータライブラリからのダウンロード\n}|
{t ネット名 /xxxxxxxx\n}|
{cSIGボードの場合はネット名の代わりに\n}|
{cパスワードを入力して下さい\n}|
{tライブラリ番号/xxxx\n}|
{tデータ名称/xxxxxxxxxxxx\n}|
{tダウンロードファイル/\n}|
{t 概要ファイル /\n}|
{s / 登録 / 取消 \n},
PASS,LibNo,name,DataFile,DocFile);
forum:= @head(@getline(a,1,1),{\n});
libno:= @head(@getline(a,2,1),{\n});
dataname:=@head(@getline(a,3,1),{\n});
datafile:=@head(@getline(a,4,1),{\n});
docfile:=@head(@getline(a,5,1),{\n});
%ok @head(@getline(a,6,1),{\n});
case (ok,
{ 1},
{case((datafile={}||@getchar(datafile,2,2)={:\})&&
@getchar(docfile,2,2)={:\},
{No},
{display({ファイル名はドライブ名からの}|
{パスで指定してください});im({Yes})},
{Yes},
{
case (@filechk(datafile)||datafile=docfile,
{Yes},
{footnote({データファイル名が重複して}|
{います}); wait(2);
im({Yes})
},
{No},
{
case (forum<>{} && libno<>{} &&
dataname<>{} && datafile<>{},
{Yes},
{
footnote({制御文を登録します});
write(UP2|{_mopdlib.ctl},
{forum=}|forum|{;}|
{libno=}|libno|{;}|
{dataname=}|dataname|{;}|
{docfile=}|docfile|{;}|
{datafile=}|datafile|{;\n});
case (@mcheck!=memono,
{Yes},{mopen(memono)}
);im({No});
},
{No},{im({Yes})})
});
});
},
{ 2},{im({No})},,
)});
im({Yes})};
/* NAPLPSファイル表示処理 */
%ViewNAP{[file,memono]
InactMemo;
naplps(file);
footnote({終了再現},{b});
loop ({
waitx();
case (@xtype,
101,
{
napend;
footnote({});
mopen(memono,0,21,639,459,{w});
im({No});
},
201,
{
napend;
footnote({});
mopen(memono,0,21,639,459,{w});
im({No});
},
102,{napend;naplps(file);im({Yes})},
202,{napend;naplps(file);im({Yes})},
,{im({Yes})}
);
});
im({Yes});
};
%SETDIR {
footnote({参照するログファイルのディレクトリを指定してください});
SNDMSG({erande_f.snd});
case (RTTLC<>{},
{Yes},
{
case (VIEWLOG={},
{Yes},
{
select({参照するログディレクトリは?},
Wtime4,{im(LOG)},
LOG,{Btitle:={No};im(LOG)},
{ボードタイトルから選択},
{Btitle:={Yes};im(LOG2|{board})},
{RTTLC出力ディレクトリ},{im(RTTLdir)},
{一時的に指定},
{
footnote({指定するディレクトリへ移動して}|
{右クリックしてしてください});
SNDMSG({erande_f.snd});
filesel;
VIEWLOG:=@getcdir;
im(@getcdir);
});
},
{No},
{
select({参照するログディレクトリは?},
Wtime4,{im(LOG)},
LOG,{Btitle:={No};im(LOG)},
{ボードタイトルから選択},
{Btitle:={Yes};im(LOG2|{board})},
{RTTLC出力ディレクトリ},{im(RTTLdir)},
VIEWLOG,{im(VIEWLOG)},
{一時的に指定},
{
footnote({指定するディレクトリへ移動して}|
{右クリックしてしてください});
SNDMSG({erande_f.snd});
filesel;
im(@getcdir);
});
});
},
{No},
{
case (VIEWLOG={},
{Yes},
{
select({参照するログディレクトリは?},
Wtime4,{im(LOG)},
LOG,{Btitle:={No};im(LOG)},
{ボードタイトルから選択},
{Btitle:={Yes};im(LOG2|{board})},
{一時的に指定},
{
footnote({指定するディレクトリへ移動して}|
{右クリックしてしてください});
SNDMSG({erande_f.snd});
filesel;
VIEWLOG:=@getcdir;
im(@getcdir);
});
},
{No},
{
select({参照するログディレクトリは?},
Wtime4,{im(LOG)},
LOG,{Btitle:={No};im(LOG)},
{ボードタイトルから選択},
{Btitle:={Yes};im(LOG2|{board})},
VIEWLOG,{im(VIEWLOG)},
{一時的に指定},
{
footnote({指定するディレクトリへ移動して}|
{右クリックしてしてください});
SNDMSG({erande_f.snd});
filesel;
im(@getcdir);
});
});
});
};
/* 受信ログ参照処理メイン */
var fn [64];
var l1 [82];
var l2 [82];
var l3 [82];
var l4 [82];
var l5 [82];
var DOCFILE [64];
var DATAFILE[64];
var LOGFILE [64];
var FLG [6];
var LineNo [6];
var MemoLine[6];
var line1 [128];
var file1 [64];
FLG:={};
footnote({受信ログを参照します});
%memono @mlast+1;
case (memono>5,
{No},{ViewLOG(@SETDIR,memono)},
{Yes},{SNDMSG ({kaknin_f.snd});
select ({メモ5-9の内容が消去されます よろしいですか?},
Wtime4,,
{ は い },{ViewLOG(@SETDIR,5)},
{ いいえ },
);
});